<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=2"><meta name="theme-color" content="#FFF"><meta name="baidu-site-verification" content="code-DvHFUp3jdk"><meta name="baidu-site-verification" content="code-eHnRZZHAeP"><meta name="baidu-site-verification" content="code-EmlZBboqEW"><meta name="baidu-site-verification" content="code-Hf9ZXEHZ41"><meta name="360-site-verification" content="941073b91e9afaf02748ba000ba47e80"><meta name="360-site-verification" content="010bd45f0d523ce46f298dd597ef0289"><meta name="sogou_site_verification" content="hlLPNfmIjv"><meta name="sogou_site_verification" content="y3La2dTB20"><meta name="msvalidate.01" content="03829B28CC46A7AA4B5503897F475BA1"><script>!function(){var s="https://s.ssl.qhres2.com/ssl/ab77b6ea7f3fbf79.js";document.write('<script src="'+s+'" id="sozz"><\/script>')}()</script><script>!function(t,e,c,n,r,a,s){t[c]=t[c]||function(){(t[c].q=t[c].q||[]).push(arguments)},a=e.createElement(n),a.async=1,a.src="https://www.clarity.ms/tag/"+r+"?ref=bwt",s=e.getElementsByTagName(n)[0],s.parentNode.insertBefore(a,s)}(window,document,"clarity","script","8xwpfccwj2")</script><script>var _hmt=_hmt||[];!function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?1d318b0509ca0909017253ed6f659ae4";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()</script><script>var _hmt=_hmt||[];!function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?aea6c1471d6299bdd1c87a0836f18675";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()</script><script>var _hmt=_hmt||[];!function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?498ca413655655a62058d6b5d7c62786";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()</script><script>var _hmt=_hmt||[];!function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?e19e8161e13f718806b79f49240583b4";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()</script><link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png"><link rel="icon" type="image/ico" sizes="32x32" href="/images/favicon.ico"><meta http-equiv="Cache-Control" content="no-transform"><meta http-equiv="Cache-Control" content="no-siteapp"><meta name="google-site-verification" content="UA-139249935-1"><meta name="baidu-site-verification" content="cOtBu9CtTEIuwJeN"><link rel="alternate" type="application/rss+xml" title="了尘兰若的小坑" href="https://liaochenlanruo.gitee.io/rss.xml"><link rel="alternate" type="application/atom+xml" title="了尘兰若的小坑" href="https://liaochenlanruo.gitee.io/atom.xml"><link rel="alternate" type="application/json" title="了尘兰若的小坑" href="https://liaochenlanruo.gitee.io/feed.json"><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Mulish:300,300italic,400,400italic,700,700italic%7CFredericka%20the%20Great:300,300italic,400,400italic,700,700italic%7CNoto%20Serif%20JP:300,300italic,400,400italic,700,700italic%7CNoto%20Serif%20SC:300,300italic,400,400italic,700,700italic%7CInconsolata:300,300italic,400,400italic,700,700italic&display=swap&subset=latin,latin-ext"><link rel="stylesheet" href="/css/app.css?v=0.2.5"><meta name="keywords" content="生信软件,ST179,宏病毒组"><link rel="canonical" href="https://liaochenlanruo.gitee.io/post/1551.html"><title>宏病毒组分析流程1-VirSorter2 - 生物信息 | ResearchGo = 了尘兰若的小坑 = liaochenlanruo</title><meta name="generator" content="Hexo 5.4.0"></head><body itemscope itemtype="http://schema.org/WebPage"><div id="loading"><div class="cat"><div class="body"></div><div class="head"><div class="face"></div></div><div class="foot"><div class="tummy-end"></div><div class="bottom"></div><div class="legs left"></div><div class="legs right"></div></div><div class="paw"><div class="hands left"></div><div class="hands right"></div></div></div></div><div id="container"><header id="header" itemscope itemtype="http://schema.org/WPHeader"><div class="inner"><div id="brand"><div class="pjax"><h1 itemprop="name headline">宏病毒组分析流程1-VirSorter2</h1><div class="meta"><span class="item" title="Created: 2021-12-02 09:35:30"><span class="icon"><i class="ic i-calendar"></i> </span><span class="text">Posted on</span> <time itemprop="dateCreated datePublished" datetime="2021-12-02T09:35:30+08:00">2021-12-02</time> </span><span class="item" title="Symbols count in article"><span class="icon"><i class="ic i-pen"></i> </span><span class="text">Symbols count in article</span> <span>12k</span> <span class="text">words</span> </span><span class="item" title="Reading time"><span class="icon"><i class="ic i-clock"></i> </span><span class="text">Reading time</span> <span>11 mins.</span></span></div></div></div><nav id="nav"><div class="inner"><div class="toggle"><div class="lines" aria-label="Toggle navigation bar"><span class="line"></span> <span class="line"></span> <span class="line"></span></div></div><ul class="menu"><li class="item title"><a href="/" rel="start">ResearchGo</a></li></ul><ul class="right"><li class="item theme"><i class="ic i-sun"></i></li><li class="item search"><i class="ic i-search"></i></li></ul></div></nav></div><div id="imgs" class="pjax"><img src="https://fastly.jsdelivr.net/gh/liaochenlanruo/cdn@master/img/custom/bgs/thumb_96.webp"></div></header><div id="waves"><svg class="waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto"><defs><path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"/></defs><g class="parallax"><use xlink:href="#gentle-wave" x="48" y="0"/><use xlink:href="#gentle-wave" x="48" y="3"/><use xlink:href="#gentle-wave" x="48" y="5"/><use xlink:href="#gentle-wave" x="48" y="7"/></g></svg></div><main><div class="inner"><div id="main" class="pjax"><div class="article wrap"><div class="breadcrumb" itemscope itemtype="https://schema.org/BreadcrumbList"><i class="ic i-home"></i> <span><a href="/">Home</a></span><i class="ic i-angle-right"></i> <span class="current" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a href="/categories/Bioinformatics/" itemprop="item" rel="index" title="In 生物信息"><span itemprop="name">生物信息</span></a><meta itemprop="position" content="1"></span></div><article itemscope itemtype="http://schema.org/Article" class="post block" lang="en"><link itemprop="mainEntityOfPage" href="https://liaochenlanruo.gitee.io/post/1551.html"><span hidden itemprop="author" itemscope itemtype="http://schema.org/Person"><meta itemprop="image" content="/images/head.jpg"><meta itemprop="name" content="Hualin Liu"><meta itemprop="description" content="liaochenlanruo, 分享微生物生物信息学分析方法，欢迎加入QQ群交流945751012，不接受群内广告！"></span><span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization"><meta itemprop="name" content="了尘兰若的小坑"></span><div class="body md" itemprop="articleBody"><div class="gallery" itemscope itemtype="http://schema.org/ImageGallery"><img data-src="https://fastly.jsdelivr.net/gh/liaochenlanruo/cdn@master/img/custom/bgs/thumb_96.webp" itemprop="contentUrl"></div><h1 id="安装软件"><a class="anchor" href="#安装软件">#</a> 安装软件</h1><ul><li><p>安装主程序及依赖</p><div class="note default"><ul><li><span class="exturl" data-url="aHR0cHM6Ly9iaXRidWNrZXQub3JnL01BVkVSSUNMYWIvdmlyc29ydGVyMi9zcmMvbWFzdGVy">VirSorter2</span> (version &gt;=2.2.3)</li><li><span class="exturl" data-url="aHR0cHM6Ly9iaXRidWNrZXQub3JnL2JlcmtlbGV5bGFiL2NoZWNrdi9zcmMvbWFzdGVy">CheckV</span> (version &gt;=0.7.0)</li><li><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL3NoYWZmZXJtL0RSQU0=">DRAMv</span> (version &gt;=1.2.0)</li></ul></div><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tr><td data-num="1"></td><td><pre>conda create -n virome <span class="token assign-left variable">virsorter</span><span class="token operator">=</span><span class="token number">2</span> checkv dram</pre></td></tr><tr><td data-num="2"></td><td><pre>conda activate virome</pre></td></tr></table></figure></li><li><p>下载数据库</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token comment"># vs2 db: db-vs2 ~ 10 min</span></pre></td></tr><tr><td data-num="2"></td><td><pre>virsorter setup -d /new_data/hualin/db/db-vs2 -j <span class="token number">50</span></pre></td></tr><tr><td data-num="3"></td><td><pre></pre></td></tr><tr><td data-num="4"></td><td><pre><span class="token comment"># checkv db: checkv-db-v1.0  &lt; 5 mins</span></pre></td></tr><tr><td data-num="5"></td><td><pre>checkv download_database /new_data/hualin/db/checkv</pre></td></tr><tr><td data-num="6"></td><td><pre></pre></td></tr><tr><td data-num="7"></td><td><pre><span class="token comment"># DRAMv: db-dramv ~5h and ~60GB of memory</span></pre></td></tr><tr><td data-num="8"></td><td><pre>DRAM-setup.py prepare_databases --skip_uniref --output_dir db-dramv</pre></td></tr></table></figure></li></ul><h1 id="预测"><a class="anchor" href="#预测">#</a> 预测</h1><ul><li><p>获取测试数据</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token function">wget</span> -O test.fa https://bitbucket.org/MAVERICLab/virsorter2/raw/15a21fa9c1ee1d2af52b0148b167292e549d356e/test/test-for-sop.fa</pre></td></tr></table></figure></li><li><p>运行 VirSorter2</p><details class="info"><summary>命令解析</summary><div><ul><li>首先以 0.5 的 score 阈值运行 VirSorter2 以保证最大的灵敏度。</li><li>只关注噬菌体 (dsDNA and ssDNA phage)，可选 dsDNAphage,NCLDV,RNA,ssDNA,lavidaviridae。</li><li>序列最小长度为 5000 bp，后续病毒分类的最低要求如此。</li><li>可根据自己的 CPU 核心数自行调整 &quot;-j&quot;。</li><li>&quot;--keep-original-seq&quot; 保留了环状和接近完整的病毒 contigs (score&gt;0.8 as a whole sequence)，后续将通过 checkV 修剪其尾端的潜在宿主基因并处理重复的环状 contigs 片段。</li></ul></div></details><div class="note default"><p>Time: 31m7.310s with a real dataset of 90.52 MB and 207,544 sequences</p></div><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tr><td data-num="1"></td><td><pre>virsorter run --keep-original-seq -w vs2-pass1 -i test.fa --include-groups dsDNAphage,ssDNA --min-length <span class="token number">5000</span>  --min-score <span class="token number">0.5</span> -j <span class="token number">50</span> all</pre></td></tr></table></figure><details class="primary"><summary>参数解析</summary><div><p>-w 指定输出目录<br>- i 指定输入序列<br>--min-length 过滤短序列<br>--min-score 分数阈值<br>--keep-original-seq 保留环状和接近完整的病毒 contigs<br>--include-groups 指定包含的病毒类型，用 “,” 分隔。可选：dsDNAphage,NCLDV,RNA,ssDNA,lavidaviridae<br>-j 线程数<br>all 直接写上就可以</p></div></details><details class="success"><summary>结果解析</summary><div><ul><li><p>final-viral-combined.fa: 病毒序列</p><ul><li>鉴定为病毒的完整序列（标识为后缀 ||full）；</li><li>鉴定为病毒的部分序列（用后缀 ||{i}_partial 标识）； {i} 可以是从 0 到该 Contig 中发现的最大病毒片段数的数字；</li><li>带有<ruby>标志基因<rt>hallmark gene</rt></ruby>的短序列（少于两个基因）被鉴定为病毒（用后缀 ||lt2gene 标识）；</li></ul></li><li><p>final-viral-score.tsv: 每个病毒序列的评分跨组和一些关键特征，这可以用于进一步过滤</p><ul><li>sequence name</li><li>score of each viral sequences across groups (多列)</li><li>max score across groups</li><li>max score group</li><li>contig length</li><li>hallmark gene count</li><li>viral gene %</li><li>nonviral gene %</li></ul></li></ul><div style="width:100%;overflow:scroll"><table border="1" rules="all" style="width:2000px;height:100px;text-align:center"><tr><td>seqname</td><td>dsDNAphage</td><td>NCLDV</td><td>RNA</td><td>ssDNA</td><td>lavidaviridae</td><td>max_score</td><td>max_score_group</td><td>length</td><td>hallmark</td><td>viral</td><td>cellular</td></tr><tr><td>NODE_5_length_17317_cov_8.385876&#124;&#124;full</td><td>0.993</td><td>0.847</td><td>0.005</td><td>0.060</td><td>0.467</td><td>0.993</td><td>dsDNAphage</td><td>17315</td><td>2</td><td>64.700</td><td>5.900</td></tr><tr><td>NODE_6_length_16611_cov_115.615064&#124;&#124;full</td><td>0.920</td><td>0.207</td><td>0.035</td><td>0.087</td><td>0.053</td><td>0.920</td><td>dsDNAphage</td><td>16610</td><td>0</td><td>3.200</td><td>0.000</td></tr><tr><td>NODE_8_length_14848_cov_778.417157&#124;&#124;full</td><td>1.000</td><td>0.220</td><td>0.105</td><td>0.380</td><td>0.627</td><td>1.000</td><td>dsDNAphage</td><td>14848</td><td>15</td><td>100.000</td><td>0.000</td></tr><tr><td>NODE_16_length_12563_cov_14.331948&#124;&#124;full</td><td>0.973</td><td>0.200</td><td>0.165</td><td>0.273</td><td>0.227</td><td>0.973</td><td>dsDNAphage</td><td>12083</td><td>0</td><td>8.000</td><td>0.000</td></tr><tr><td>NODE_17_length_11885_cov_350.043956&#124;&#124;full</td><td>0.653</td><td>0.513</td><td>0.050</td><td>0.080</td><td>0.047</td><td>0.653</td><td>dsDNAphage</td><td>11885</td><td>0</td><td>9.100</td><td>0.000</td></tr><tr><td>NODE_21_length_11527_cov_216.405073&#124;&#124;full</td><td>0.620</td><td>0.407</td><td>0.000</td><td>0.013</td><td>0.060</td><td>0.620</td><td>dsDNAphage</td><td>11526</td><td>0</td><td>10.500</td><td>5.300</td></tr><tr><td>NODE_23_length_11316_cov_8.144303&#124;&#124;full</td><td>0.367</td><td>0.540</td><td>0.010</td><td>0.000</td><td>0.400</td><td>0.540</td><td>NCLDV</td><td>11313</td><td>1</td><td>23.100</td><td>7.700</td></tr></table></div><div class="note warning"><p>不同病毒类群的分类器并非相互排斥，它们的<ruby>目标病毒序列空间<rt>target viral sequence space</rt></ruby>可能存在重叠，这意味着该信息不应被使用或当作<ruby>可靠的分类<rt>reliable taxonomic classification</rt></ruby>。VirSorter2 的用途仅限于病毒鉴定。</p></div><ul><li><p>final-viral-boundary.tsv: 带有边界信息的表 (与其他两个文件相比，可能有额外的记录，应该忽略)。</p><p>only some of the columns in this file might be useful:</p><ul><li>seqname: original sequence name</li><li>trim_orf_index_start, trim_orf_index_end: start and end ORF index on orignal sequence of identified viral sequence</li><li>trim_bp_start, trim_bp_end: start and end position on orignal sequence of identified viral sequence</li><li>trim_pr: score of final trimmed viral sequence</li><li>partial: full sequence as viral or partial sequence as viral; this is defined when a full sequence has score &gt; score cutoff, it is full (0), or else any viral sequence extracted within it is partial (1)</li><li>pr_full: score of the original sequence</li><li>hallmark_cnt: hallmark gene count</li><li>group: the classifier of viral group that gives high score; this should NOT be used as reliable classification</li></ul></li></ul><div style="width:100%;overflow:scroll"><table border="1" rules="all" style="width:2000px;height:100px;text-align:center"><tr><td>seqname</td><td>trim_orf_index_start</td><td>trim_orf_index_end</td><td>trim_bp_start</td><td>trim_bp_end</td><td>trim_pr</td><td>trim_pr_max</td><td>prox_orf_index_start</td><td>prox_orf_index_end</td><td>prox_bp_start</td><td>prox_bp_end</td><td>prox_pr</td><td>prox_pr_max</td><td>partial</td><td>full_orf_index_start</td><td>full_orf_index_end</td><td>full_bp_start</td><td>full_bp_end</td><td>pr_full</td><td>arc</td><td>bac</td><td>euk</td><td>vir</td><td>mix</td><td>unaligned</td><td>hallmark_cnt</td><td>group</td><td>shape</td><td>seqname_new</td></tr><tr><td>NODE_999_length_4026_cov_7.610929</td><td>1</td><td>12</td><td>1</td><td>4025</td><td>0.547</td><td>0.547</td><td>1</td><td>12</td><td>1</td><td>4025</td><td>nan</td><td>nan</td><td>0</td><td>1</td><td>12</td><td>1</td><td>4025</td><td>0.547</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>100.0</td><td>0</td><td>dsDNAphage</td><td>linear</td><td>NODE_999_length_4026_cov_7.610929||full</td></tr><tr><td>NODE_9999_length_1276_cov_11.598690</td><td>1</td><td>3</td><td>3</td><td>1274</td><td>0.955</td><td>0.955</td><td>1</td><td>3</td><td>3</td><td>1274</td><td>nan</td><td>nan</td><td>0</td><td>1</td><td>3</td><td>3</td><td>1274</td><td>0.955</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>100.0</td><td>0</td><td>RNA</td><td>linear</td><td>NODE_9999_length_1276_cov_11.598690||full</td></tr><tr><td>NODE_99999_length_314_cov_4.000000</td><td>1</td><td>2</td><td>1</td><td>287</td><td>0.57</td><td>0.57</td><td>1</td><td>2</td><td>1</td><td>287</td><td>nan</td><td>nan</td><td>0</td><td>1</td><td>2</td><td>1</td><td>287</td><td>0.57</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>50.0</td><td>50.0</td><td>0</td><td>RNA</td><td>linear</td><td>NODE_99999_length_314_cov_4.000000||full</td></tr><tr><td>NODE_99992_length_314_cov_4.389961</td><td>1</td><td>2</td><td>1</td><td>275</td><td>0.747</td><td>0.747</td><td>1</td><td>2</td><td>1</td><td>275</td><td>nan</td><td>nan</td><td>0</td><td>1</td><td>2</td><td>1</td><td>275</td><td>0.747</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>100.0</td><td>0</td><td>ssDNA</td><td>linear</td><td>NODE_99992_length_314_cov_4.389961||full</td></tr><tr><td>NODE_9997_length_1276_cov_44.113841</td><td>1</td><td>2</td><td>1</td><td>1240</td><td>0.98</td><td>0.98</td><td>1</td><td>2</td><td>1</td><td>1240</td><td>nan</td><td>nan</td><td>0</td><td>1</td><td>2</td><td>1</td><td>1240</td><td>0.98</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>50.0</td><td>50.0</td><td>0</td><td>RNA</td><td>linear</td><td>NODE_9997_length_1276_cov_44.113841||full</td></tr></table></div><div class="note warning"><p>在<ruby>原病毒<rt>provirus</rt></ruby>提取过程中，为了获得更好的敏感性，VirSorter2 有时会高估病毒序列的大小。建议清除这些前病毒预测，以去除预测病毒区域边缘的潜在宿主基因，例如使用<span class="exturl" data-url="aHR0cHM6Ly9iaXRidWNrZXQub3JnL2JlcmtlbGV5bGFiL2NoZWNrdg=="> CheckV</span> 等工具。</p></div><div class="note primary"><p>How to pick a score cutoff?</p></div><p>一般来说，score&gt;0.9 的人为高置信度。得分在 0.5 到 0.9 之间的可能是病毒和非病毒的混合体。很难确定区分病毒和非病毒的最佳分数，因为它取决于宿主序列和未知序列的百分比。因此，<span class="rainbow">建议使用默认截止值 (0.5) 以获得最大灵敏度，然后使用 checkV 应用质量检查步骤以消除误报（预测完整性除外）</span>。<mark>请继续下面的流程。</mark></p></div></details></li><li><p>运行 checkV</p><details class="info"><summary>命令解析</summary><div><p>Score 阈值设为 0.5 时，VirSorter2 结果中可能存在一些非病毒序列或区域。因此，使用 CheckV 对 VirSorter2 的结果进行质量控制，并修剪在<ruby>原病毒<rt>proviruses</rt></ruby>末端留下的潜在宿主区域。可以根据 CPU 内核的可用性调整 - t 选项。</p></div></details><div class="note default"><p>Time: 0m28.795s</p></div><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tr><td data-num="1"></td><td><pre>checkv end_to_end vs2-pass1/final-viral-combined.fa checkv -t <span class="token number">50</span> -d /new_data/hualin/db/checkv/checkv-db-v1.0</pre></td></tr></table></figure><details class="success"><summary>结果解析</summary><div><ul><li>./checkv/</li><li>completeness.tsv</li><li>complete_genomes.tsv</li><li>contamination.tsv</li><li>proviruses.fna</li><li>quality_summary.tsv</li><li>viruses.fna</li><li>tmp</li></ul></div></details></li><li><p>再次运行 VirSorter2</p><details class="info"><summary>命令解析</summary><div><ul><li>再次利用 checkV-trimmed 序列运行 VirSorter2 以得到 &quot;affi-contigs.tab&quot; 文件，该文件将作为 DRAMv 的输入以鉴定 AMGs。</li><li>注意 &quot;--seqname-suffix-off&quot; 选项保留了原始的输入序列名称，因为我们确信在本步骤中，不可能从同一条 contig 中获得 &gt; 1 个原病毒。</li><li>“--viral-gene-enrich-off” 选项关闭了病毒基因要多于宿主基因的要求，以确保 VirSorter2 在这一步不做任何筛查。</li><li>以上两个选项需要 VirSorter2 版本 &gt;=2.2.1。</li><li>可选所有病毒：dsDNAphage,NCLDV,RNA,ssDNA,lavidaviridae</li></ul></div></details><div class="note default"><p>Time: 18m30.896s</p></div><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token function">cat</span> checkv/proviruses.fna checkv/viruses.fna <span class="token operator">></span> checkv/combined.fna</pre></td></tr><tr><td data-num="2"></td><td><pre></pre></td></tr><tr><td data-num="3"></td><td><pre>virsorter run --seqname-suffix-off --viral-gene-enrich-off --provirus-off --prep-for-dramv -i checkv/combined.fna -w vs2-pass2 --include-groups dsDNAphage,ssDNA --min-length <span class="token number">5000</span> --min-score <span class="token number">0.5</span> -j <span class="token number">50</span> all</pre></td></tr></table></figure><details class="success"><summary>结果解析</summary><div><ul><li>./vs2-pass2/</li><li>inal-viral-combined.fa</li><li>final-viral-score.tsv</li><li>for-dramv/final-viral-combined-for-dramv.fa</li><li>for-dramv/viral-affi-contigs-for-dramv.tab</li></ul></div></details></li><li><p>运行 DRAMv</p><details class="info"><summary>命令解析</summary><div><p>使用 DRAMv 注释鉴定的病毒序列，以用于后续<ruby>人工整理<rt>manual curation</rt></ruby>。可通过 &quot;--threads&quot; 控制调用的 CPU 核心数。</p></div></details><div class="note default"><p>Time: 8.81h</p></div><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token comment"># step 1 annotate 耗时步骤，建议投后台运行</span></pre></td></tr><tr><td data-num="2"></td><td><pre>DRAM-v.py annotate -i vs2-pass2/for-dramv/final-viral-combined-for-dramv.fa -v vs2-pass2/for-dramv/viral-affi-contigs-for-dramv.tab -o dramv-annotate --skip_trnascan --threads <span class="token number">50</span> --min_contig_size <span class="token number">1000</span></pre></td></tr><tr><td data-num="3"></td><td><pre></pre></td></tr><tr><td data-num="4"></td><td><pre><span class="token comment">#step 2 summarize anntotations</span></pre></td></tr><tr><td data-num="5"></td><td><pre>DRAM-v.py distill -i dramv-annotate/annotations.tsv -o dramv-distill</pre></td></tr></table></figure><details class="success"><summary>结果解析</summary><div><ul><li>dramv-annotate/annotations.tsv</li><li>dramv-annotate/genbank 各条 contig 的 gbk 文件</li><li>dramv-annotate/genes.faa</li><li>dramv-annotate/genes.fna</li><li>dramv-annotate/genes.gff</li><li>dramv-annotate/rrnas.tsv</li><li>dramv-annotate/scaffolds.fna</li><li>dramv-annotate/vMAGs 各条 contig 的 fasta 文件</li></ul></div></details></li></ul><h1 id="过滤"><a class="anchor" href="#过滤">#</a> 过滤</h1><h2 id="依据病毒和宿主基因数-分数-hallmark基因数以及contig长度进行筛选"><a class="anchor" href="#依据病毒和宿主基因数-分数-hallmark基因数以及contig长度进行筛选">#</a> 依据病毒和宿主基因数、分数、hallmark 基因数以及 contig 长度进行筛选</h2><p>来自 checkV 的病毒和宿主基因计数可用于假阳性筛查。由于 checkV 在预测病毒基因方面非常保守，那些由 checkV 预测的病毒基因的序列应该是病毒的，而那些没有被 checkV 预测到病毒基因的序列更可能是非病毒的。</p><p>基于我们对土壤宏基因组的基准测试，(1) 那些没有预测到病毒和宿主基因的序列是病毒；(2) 没有病毒基因但有 2 个或 2 个以上宿主基因的大多数为非病毒基因；(3) 那些没有病毒基因和具有 1 个宿主基因的很难区分其为病毒还是非病毒（可能是可移动的基因元件，类似于 VirSorter1 中的第 3 类），除非手动检查，否则应该丢弃。</p><p>只选择那些大于 10kb 的用于手动检查，因为太短的无法分辨。还有那些 VirSorter2 得分≥0.95 或 hallmark 基因计数 &gt; 2 的大多数是病毒。<mark>这些经验筛选标准总结如下：</mark></p><div class="note success"><p>Keep1: viral_gene &gt;0</p></div><div class="note success"><p>Keep2: viral_gene =0 AND (host_gene =0 OR score &gt;=0.95 OR hallmark &gt;2)</p></div><div class="note warning"><p>Manual check: (NOT in Keep1 OR Keep2) AND viral_gene =0 AND host_gene =1 AND length &gt;=10kb</p></div><div class="note danger"><p>Discard: the rest</p></div><p><span class="aqua">要查看病毒基因、宿主基因、评分和<ruby>序列的特征标记<rt>hallmark of sequences</rt></ruby>，您可以合并 &quot;vs2-pass1/final-viral-score.tsv&quot; 和 &quot;checkv/contamination.tsv&quot;，并在电子表格中过滤。</span>本尊为各位提供了 Perl 脚本<span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2xpYW9jaGVubGFucnVvL215U2NyaXB0cy90cmVlL21haW4vMTU1MSUyMFZpcm9tZQ=="> cat_tsv.pl</span> 以实现机动合并！直接在终端运行 <code>perl cat_tsv.pl</code> 即可得到合并后的文件 <code>forCheck.txt</code> 。</p><figure class="highlight perl"><figcaption data-lang="perl"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token comment">#!/usr/bin/perl</span></pre></td></tr><tr><td data-num="2"></td><td><pre><span class="token keyword">use</span> strict<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="3"></td><td><pre><span class="token keyword">use</span> warnings<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="4"></td><td><pre></pre></td></tr><tr><td data-num="5"></td><td><pre><span class="token keyword">my</span> <span class="token variable">%hash</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="6"></td><td><pre><span class="token keyword">my</span> <span class="token variable">$head_checkv</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="7"></td><td><pre><span class="token keyword">my</span> <span class="token variable">$head_pass1</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="8"></td><td><pre><span class="token keyword">my</span> <span class="token variable">$count</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="9"></td><td><pre><span class="token keyword">my</span> <span class="token variable">$num</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="10"></td><td><pre>open IN<span class="token punctuation">,</span> <span class="token string">"checkv/contamination.tsv"</span> <span class="token operator">||</span> <span class="token keyword">die</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="11"></td><td><pre><span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token filehandle symbol">&lt;IN></span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="12"></td><td><pre>	chomp<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="13"></td><td><pre>	<span class="token variable">$_</span> <span class="token operator">=~</span><span class="token regex">s/[\r\n]+//g</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="14"></td><td><pre>	<span class="token variable">$count</span><span class="token operator">++</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="15"></td><td><pre>	<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$count</span> <span class="token operator">==</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="16"></td><td><pre>		<span class="token variable">$head_checkv</span> <span class="token operator">=</span> <span class="token variable">$_</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="17"></td><td><pre>	<span class="token punctuation">&#125;</span><span class="token keyword">else</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="18"></td><td><pre>		<span class="token keyword">my</span> <span class="token variable">@lines</span> <span class="token operator">=</span> split <span class="token regex">/\t/</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="19"></td><td><pre>		<span class="token variable">$hash</span><span class="token punctuation">&#123;</span><span class="token variable">$lines</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">&#125;</span> <span class="token operator">=</span> <span class="token variable">$_</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="20"></td><td><pre>	<span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="21"></td><td><pre><span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="22"></td><td><pre>close IN<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="23"></td><td><pre></pre></td></tr><tr><td data-num="24"></td><td><pre>open IN<span class="token punctuation">,</span> <span class="token string">"vs2-pass1/final-viral-score.tsv"</span> <span class="token operator">||</span> <span class="token keyword">die</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="25"></td><td><pre>open OUT<span class="token punctuation">,</span> <span class="token string">">forCheck.txt"</span> <span class="token operator">||</span> <span class="token keyword">die</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="26"></td><td><pre><span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token filehandle symbol">&lt;IN></span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="27"></td><td><pre>	chomp<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="28"></td><td><pre>	<span class="token variable">$_</span> <span class="token operator">=~</span><span class="token regex">s/[\r\n]+//g</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="29"></td><td><pre>	<span class="token variable">$num</span><span class="token operator">++</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="30"></td><td><pre>	<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$num</span> <span class="token operator">==</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="31"></td><td><pre>		<span class="token variable">$head_pass1</span> <span class="token operator">=</span> <span class="token variable">$_</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="32"></td><td><pre>		<span class="token keyword">print</span> OUT <span class="token string">"$head_pass1\t$head_checkv\n"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="33"></td><td><pre>	<span class="token punctuation">&#125;</span><span class="token keyword">else</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="34"></td><td><pre>		<span class="token keyword">my</span> <span class="token variable">@line</span> <span class="token operator">=</span> split <span class="token regex">/\t/</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="35"></td><td><pre>		<span class="token keyword">if</span> <span class="token punctuation">(</span>exists <span class="token variable">$hash</span><span class="token punctuation">&#123;</span><span class="token variable">$line</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">&#125;</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="36"></td><td><pre>			<span class="token keyword">print</span> OUT <span class="token string">"$_\t$hash&#123;$line[0]&#125;\n"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="37"></td><td><pre>		<span class="token punctuation">&#125;</span><span class="token keyword">else</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="38"></td><td><pre>			<span class="token keyword">print</span> OUT <span class="token string">"$_\n"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="39"></td><td><pre>		<span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="40"></td><td><pre>	<span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="41"></td><td><pre><span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="42"></td><td><pre>close IN<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="43"></td><td><pre>close OUT<span class="token punctuation">;</span></pre></td></tr></table></figure><p>接下来按照上面的四条规则对 <code>forCheck.txt</code> 进行拆分，得到病毒 <code>Virus.txt</code> 、手动核对 <code>Manual_check.txt</code> 及抛弃的 <code>Discard.txt</code> 。可以自己看，也可以用 <code>get_virus.pl</code> 来完成。</p><figure class="highlight perl"><figcaption data-lang="perl"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token comment">#!/usr/bin/perl</span></pre></td></tr><tr><td data-num="2"></td><td><pre><span class="token keyword">use</span> strict<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="3"></td><td><pre><span class="token keyword">use</span> warnings<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="4"></td><td><pre></pre></td></tr><tr><td data-num="5"></td><td><pre><span class="token keyword">my</span> <span class="token variable">$count</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="6"></td><td><pre>open IN<span class="token punctuation">,</span> <span class="token string">"forCheck.txt"</span> <span class="token operator">||</span> <span class="token keyword">die</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="7"></td><td><pre>open VIRUS<span class="token punctuation">,</span> <span class="token string">">Virus.txt"</span> <span class="token operator">||</span> <span class="token keyword">die</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="8"></td><td><pre>open MANUAL<span class="token punctuation">,</span> <span class="token string">">Manual_check.txt"</span> <span class="token operator">||</span> <span class="token keyword">die</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="9"></td><td><pre>open DISCARD<span class="token punctuation">,</span> <span class="token string">">Discard.txt"</span> <span class="token operator">||</span> <span class="token keyword">die</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="10"></td><td><pre><span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token filehandle symbol">&lt;IN></span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="11"></td><td><pre>	chomp<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="12"></td><td><pre>	<span class="token variable">$_</span> <span class="token operator">=~</span><span class="token regex">s/[\r\n]+//g</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="13"></td><td><pre>	<span class="token variable">$count</span><span class="token operator">++</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="14"></td><td><pre>	<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$count</span> <span class="token operator">==</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="15"></td><td><pre>		<span class="token keyword">print</span> VIRUS <span class="token variable">$_</span> <span class="token operator">.</span> <span class="token string">"\n"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="16"></td><td><pre>		<span class="token keyword">print</span> MANUAL <span class="token variable">$_</span> <span class="token operator">.</span> <span class="token string">"\n"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="17"></td><td><pre>		<span class="token keyword">print</span> DISCARD <span class="token variable">$_</span> <span class="token operator">.</span> <span class="token string">"\n"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="18"></td><td><pre>	<span class="token punctuation">&#125;</span><span class="token keyword">else</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="19"></td><td><pre>		<span class="token keyword">my</span> <span class="token variable">@lines</span> <span class="token operator">=</span> split <span class="token regex">/\t/</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="20"></td><td><pre>		<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$lines</span><span class="token punctuation">[</span><span class="token number">15</span><span class="token punctuation">]</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span> <span class="token comment"># virus keep1</span></pre></td></tr><tr><td data-num="21"></td><td><pre>			<span class="token keyword">print</span> VIRUS <span class="token variable">$_</span> <span class="token operator">.</span> <span class="token string">"\n"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="22"></td><td><pre>		<span class="token punctuation">&#125;</span><span class="token keyword">elsif</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$lines</span><span class="token punctuation">[</span><span class="token number">15</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token operator">&amp;&amp;</span> <span class="token punctuation">(</span><span class="token variable">$lines</span><span class="token punctuation">[</span><span class="token number">16</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span> <span class="token comment"># virus keep2</span></pre></td></tr><tr><td data-num="23"></td><td><pre>			<span class="token keyword">print</span> VIRUS <span class="token variable">$_</span> <span class="token operator">.</span> <span class="token string">"\n"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="24"></td><td><pre>		<span class="token punctuation">&#125;</span><span class="token keyword">elsif</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$lines</span><span class="token punctuation">[</span><span class="token number">15</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token operator">&amp;&amp;</span> <span class="token punctuation">(</span><span class="token variable">$lines</span><span class="token punctuation">[</span><span class="token number">6</span><span class="token punctuation">]</span> <span class="token operator">>=</span> <span class="token number">0.95</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span> <span class="token comment"># virus keep2</span></pre></td></tr><tr><td data-num="25"></td><td><pre>			<span class="token keyword">print</span> VIRUS <span class="token variable">$_</span> <span class="token operator">.</span> <span class="token string">"\n"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="26"></td><td><pre>		<span class="token punctuation">&#125;</span><span class="token keyword">elsif</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$lines</span><span class="token punctuation">[</span><span class="token number">15</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token operator">&amp;&amp;</span> <span class="token punctuation">(</span><span class="token variable">$lines</span><span class="token punctuation">[</span><span class="token number">9</span><span class="token punctuation">]</span> <span class="token operator">></span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span> <span class="token comment"># virus keep2</span></pre></td></tr><tr><td data-num="27"></td><td><pre>			<span class="token keyword">print</span> VIRUS <span class="token variable">$_</span> <span class="token operator">.</span> <span class="token string">"\n"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="28"></td><td><pre>		<span class="token punctuation">&#125;</span><span class="token keyword">elsif</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$lines</span><span class="token punctuation">[</span><span class="token number">15</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token operator">&amp;&amp;</span> <span class="token punctuation">(</span><span class="token variable">$lines</span><span class="token punctuation">[</span><span class="token number">16</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token operator">&amp;&amp;</span> <span class="token punctuation">(</span><span class="token variable">$lines</span><span class="token punctuation">[</span><span class="token number">8</span><span class="token punctuation">]</span> <span class="token operator">>=</span> <span class="token number">10000</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span> <span class="token comment"># manual check</span></pre></td></tr><tr><td data-num="29"></td><td><pre>			<span class="token keyword">print</span> MANUAL <span class="token variable">$_</span> <span class="token operator">.</span> <span class="token string">"\n"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="30"></td><td><pre>		<span class="token punctuation">&#125;</span><span class="token keyword">else</span> <span class="token punctuation">&#123;</span> <span class="token comment"># discard</span></pre></td></tr><tr><td data-num="31"></td><td><pre>			<span class="token keyword">print</span> DISCARD <span class="token variable">$_</span> <span class="token operator">.</span> <span class="token string">"\n"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="32"></td><td><pre>		<span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="33"></td><td><pre>	<span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="34"></td><td><pre><span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="35"></td><td><pre>close IN<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="36"></td><td><pre>close VIRUS<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="37"></td><td><pre>close MANUAL<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="38"></td><td><pre>close DISCARD<span class="token punctuation">;</span></pre></td></tr></table></figure><p>用法：脚本与 <code>forCheck.txt</code> 放在同一目录，终端运行如下命令。</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tr><td data-num="1"></td><td><pre>perl get_virus.pl</pre></td></tr></table></figure><p>对于 <code>Manual_check.txt</code> 中的序列，需要用眼睛和脑袋去 <code>dramv-annotate/annotations.tsv</code> 中找注释信息，然后根据下面的方法判断其属于病毒还是细胞，如果是病毒，就将其所在的那行信息复制到 <code>Virus.txt</code> 文件的末尾，并保存。</p><h2 id="依据dramv注释筛选"><a class="anchor" href="#依据dramv注释筛选">#</a> 依据 DRAMv 注释筛选</h2><p>在病毒和宿主中都有一些共同的基因 (如<ruby>脂多糖<rp>(</rp><rt>LPS</rt><rp>)</rp></ruby>相关) 和移动元件，这些基因可能导致上述 “Keep2” 类别中的假阳性。因此，<ins class="dot">要谨慎对待带有这些基因的 contigs</ins>。专家们已经编制了一份与此相关的<span class="red"> “可疑”</span> 基因列表。我们可以使用 “Keep2” 类别中的 contigs 对 DRAMv 表取子集，并在 DRAMv 子集表中筛选 “可疑” 基因 (忽略大小写，例如在 “grep” 中使用 “-i” 选项)，然后将带有这些基因的 contigs 放入 “手动检查” 类别中。</p><h2 class="tabset" id="手动检查"><a class="anchor" href="#手动检查">#</a> 手动检查</h2><p>对于存在于<ruby>“手动检查”<rt>manual check</rt></ruby>类别中的序列，可以观察其在 &quot;dramv-annotate/annotations.tsv&quot; 中的注释信息。本步骤很难标准化，下面是一些经验之谈：</p><div class="tab" data-id="id1" data-title="判定contig为病毒的标准"><ul><li>结构基因、hallmark 基因、<ruby>注释缺失或假设性富集<rt>depletion in annotations or enrichment for hypotheticals</rt> (~10% 的基因具有 non-hypothetical 注释)。</ruby></li><li>缺乏 hallmarks，但 &gt;=50% 已注释的基因为病毒，且其中至少一半以上的 viral bitcore &gt;100，且 contig 的长度 &lt; 50kb。</li><li>Provirus:<ruby>整合酶 / 重组酶 / 切除酶 / 阻遏子<rt>Integrase/recombinase/excisionase/repressor</rt></ruby>，在一侧富集了病毒基因。</li><li>Provirus: 基因组中存在 “break”：两个基因之间的<ruby>间隙<rt>gap</rt></ruby>对应于一个<ruby>链开关<rt>strand switch</rt></ruby>，更高的编码密度，注释缺失，以及在一侧噬菌体基因的富集。</li><li><ruby>仅有～1-3 个基因有注释，但至少一半命中病毒，且命中基因的 bitscore 不超过病毒 bitscore 的 150% ，<rt>Few annotations only ~1-3 genes, but with at least half hitting to viruses, and where the genes hitting cells have a bitscore no more than 150% that of the viral bitscores</rt></ruby><ruby>且 / 或病毒的 bitscore &gt;100 <rt>and/or viral bitscores are &gt;100</rt></ruby>。</li><li>LPS (脂多糖)<ruby>外观区域对病毒基因的命中率也非常高<rt>looking regions if also has very strong hits to viral genes</rt></ruby>，bitscore&gt;100。</li></ul></div><div class="tab" data-id="id1" data-title="判定contig为非病毒的标准"><ul><li><ruby>细胞样基因<rt>cellular like genes</rt></ruby>是病毒基因的 3 倍，几乎所有基因都有注释，没有基因只命中病毒，也没有病毒<ruby>标志基因<rt>hallmark genes</rt></ruby>。</li><li>缺乏任何病毒 hallmark genes，且长度 &gt;50kb。</li><li>许多明显的细胞基因字符串，没有其他病毒标志基因。 在基准测试中遇到的例子包括 1) CRISPR Cas, 2) ABC transporters, 3) Sporulation proteins, 4) Two-component systems, 5) Secretion system。这其中一些可能是由病毒编码的，但在没有进一步证据的情况下并不表明是病毒 contig。</li><li>多个质粒基因或转座酶，但没有明确的只命中病毒的基因。</li><li>注释信息很少，仅有～1-3 个基因同时命中了病毒和细胞基因，但有 stronger bitscores 支持其为细胞基因。</li><li><ruby>没有强有力的命中病毒的脂多糖样区域<rt>LPS looking regions if no strong viral hits</rt></ruby>。富含通常与脂多糖相关的基因，如<ruby>外聚酶<rp>(</rp><rt>epimerases</rt><rp>)</rp></ruby>、<ruby>糖<rp>(</rp><rt>glycosyl</rt><rp>)</rp> 基转移酶<rp>(</rp><rt>transferases</rt><rp>)</rp></ruby>、<ruby>酰基转移酶<rp>(</rp><rt>acyltransferase</rt><rp>)</rp></ruby>、<ruby>短<rp>(</rp><rt>dehydrogenase</rt><rp>)</rp> 链<rp>(</rp><rt>reductase</rt><rp>)</rp> 脱氢酶<rp>(</rp><rt>short-ch</rt><rp>)</rp>/<rt></rt> 还原酶<rp>(</rp><rt>ain</rt><rp>)</rp></ruby>、<ruby>脱水酶<rp>(</rp><rt>dehydratase</rt><rp>)</rp></ruby>。</li><li>注释为 Type IV 和 / 或 Type VI 分析系统，并被非病毒基因围绕。</li><li>注释信息很少，仅有～1-3 个基因全部命中细胞基因 (即使 bitscore &lt;100) ，且没有命中病毒的基因。</li></ul></div><div class="note warning"><p>最后，用户要注意，VirSorter 2 和 / 或 checkV 预测的任何原病毒边界只是一个近似的估计 (寻找 “ends” 在前噬菌体发现中是一个相当具有挑战性的问题)，也需要仔细地手工检查，特别是在 AMG 研究中。</p></div><p>最终我们需要拿到病毒 contig 的序列，用 <code>get_virus_seqs.pl</code> 完成。</p><figure class="highlight bash"><figcaption data-lang="bash"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token shebang important">#!/usr/bin/perl</span></pre></td></tr><tr><td data-num="2"></td><td><pre>use strict<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="3"></td><td><pre>use warnings<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="4"></td><td><pre></pre></td></tr><tr><td data-num="5"></td><td><pre>my %hash<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="6"></td><td><pre><span class="token function">open</span> IN, <span class="token string">"checkv/combined.fna"</span> <span class="token operator">||</span> die<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="7"></td><td><pre><span class="token builtin class-name">local</span> $/ <span class="token operator">=</span> <span class="token string">">"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="8"></td><td><pre><span class="token operator">&lt;</span>IN<span class="token operator">></span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="9"></td><td><pre><span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token operator">&lt;</span>IN<span class="token operator">></span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="10"></td><td><pre>	chomp<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="11"></td><td><pre>	my <span class="token punctuation">(</span><span class="token variable">$header</span>, <span class="token variable">$seq</span><span class="token punctuation">)</span> <span class="token operator">=</span> split<span class="token punctuation">(</span>/<span class="token punctuation">\</span>n/, <span class="token variable">$_</span>, <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="12"></td><td><pre>	my <span class="token variable">$id</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="13"></td><td><pre>	<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$header</span> <span class="token operator">=~</span>/<span class="token punctuation">(</span><span class="token punctuation">\</span>S+<span class="token punctuation">)</span><span class="token punctuation">\</span><span class="token operator">|</span><span class="token punctuation">\</span><span class="token operator">|</span>.+/<span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="14"></td><td><pre>		<span class="token variable">$id</span> <span class="token operator">=</span> <span class="token variable">$1</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="15"></td><td><pre>	<span class="token punctuation">&#125;</span>else <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="16"></td><td><pre>		<span class="token variable">$id</span> <span class="token operator">=</span> <span class="token variable">$header</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="17"></td><td><pre>	<span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="18"></td><td><pre>	<span class="token variable">$hash</span><span class="token punctuation">&#123;</span><span class="token variable">$id</span><span class="token punctuation">&#125;</span> <span class="token operator">=</span> <span class="token variable">$seq</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="19"></td><td><pre><span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="20"></td><td><pre>close IN<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="21"></td><td><pre></pre></td></tr><tr><td data-num="22"></td><td><pre><span class="token builtin class-name">local</span> $/ <span class="token operator">=</span> <span class="token string">"<span class="token entity" title="\n">\n</span>"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="23"></td><td><pre><span class="token function">open</span> IN, <span class="token string">"Virus.txt"</span> <span class="token operator">||</span> die<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="24"></td><td><pre><span class="token function">open</span> OUT, <span class="token string">">Virus.fas"</span> <span class="token operator">||</span> die<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="25"></td><td><pre><span class="token function">open</span> NO, <span class="token string">">NoSeqs.ids"</span> <span class="token operator">||</span> die<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="26"></td><td><pre><span class="token operator">&lt;</span>IN<span class="token operator">></span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="27"></td><td><pre></pre></td></tr><tr><td data-num="28"></td><td><pre><span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token operator">&lt;</span>IN<span class="token operator">></span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="29"></td><td><pre>	chomp<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="30"></td><td><pre>	my @lines <span class="token operator">=</span> <span class="token function">split</span> /<span class="token punctuation">\</span>t/<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="31"></td><td><pre>	<span class="token variable">$lines</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">=~</span>/<span class="token punctuation">(</span><span class="token punctuation">\</span>S+<span class="token punctuation">)</span><span class="token punctuation">\</span><span class="token operator">|</span><span class="token punctuation">\</span><span class="token operator">|</span>/<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="32"></td><td><pre>	<span class="token keyword">if</span> <span class="token punctuation">(</span>exists <span class="token variable">$hash</span><span class="token punctuation">&#123;</span><span class="token variable">$1</span><span class="token punctuation">&#125;</span><span class="token punctuation">)</span> <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="33"></td><td><pre>		print OUT <span class="token string">"><span class="token variable">$lines</span>[0]<span class="token entity" title="\n">\n</span><span class="token variable">$hash</span>&#123;<span class="token variable">$1</span>&#125;<span class="token entity" title="\n">\n</span>"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="34"></td><td><pre>	<span class="token punctuation">&#125;</span>else <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="35"></td><td><pre>		print NO <span class="token string">"<span class="token variable">$lines</span>[0]<span class="token entity" title="\n">\n</span>"</span><span class="token punctuation">;</span></pre></td></tr><tr><td data-num="36"></td><td><pre>	<span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="37"></td><td><pre><span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="38"></td><td><pre>close IN<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="39"></td><td><pre>close OUT<span class="token punctuation">;</span></pre></td></tr><tr><td data-num="40"></td><td><pre>close NO<span class="token punctuation">;</span></pre></td></tr></table></figure><p>用法：终端运行如下命令即可得到序列文件 <code>Virus.fas</code> 。</p><figure class="highlight perl"><figcaption data-lang="perl"></figcaption><table><tr><td data-num="1"></td><td><pre>perl get_virus_seqs<span class="token operator">.</span>pl</pre></td></tr></table></figure><h1 id="脚本获取"><a class="anchor" href="#脚本获取">#</a> 脚本获取</h1><p>关注公众号 “生信之巅”，聊天窗口回复 “1551” 获取下载链接。</p><table align="center"><tr><td align="center"><img data-src="https://fastly.jsdelivr.net/gh/liaochenlanruo/cdn@master/img/social/生信之巅公众号.jpg" alt="生信之巅微信公众号" style="width:100px;height:100px;vertical-align:-20px;border-radius:0;margin-right:0;margin-bottom:5px;align:center"></td><td align="center"><img data-src="https://fastly.jsdelivr.net/gh/liaochenlanruo/cdn@master/img/social/小程序码.png" alt="生信之巅小程序码" style="width:100px;height:100px;vertical-align:-20px;border-radius:0;margin-left:0;margin-bottom:5px;align:center"></td></tr></table><p><font color="#FF0000"><ruby><b>敬告</b>：使用文中脚本请引用本文网址，请尊重本人的劳动成果，谢谢！<rt><b>Notice</b>: When you use the scripts in this article, please cite the link of this webpage. Thank you!</rt></ruby></font></p><h1 id="参考"><a class="anchor" href="#参考">#</a> 参考</h1><ul><li><span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2ppYXJvbmcvVmlyU29ydGVyMg==">VirSorter2</span></li><li><span class="exturl" data-url="aHR0cHM6Ly93d3cucHJvdG9jb2xzLmlvL3ZpZXcvdmlyYWwtc2VxdWVuY2UtaWRlbnRpZmljYXRpb24tc29wLXdpdGgtdmlyc29ydGVyMi1id201cGM4Ng==">Viral sequence identification SOP with VirSorter2 V.3</span></li></ul><div class="tags"><a href="/tags/%E7%94%9F%E4%BF%A1%E8%BD%AF%E4%BB%B6/" rel="tag"><i class="ic i-tag"></i> 生信软件</a> <a href="/tags/ST179/" rel="tag"><i class="ic i-tag"></i> ST179</a> <a href="/tags/%E5%AE%8F%E7%97%85%E6%AF%92%E7%BB%84/" rel="tag"><i class="ic i-tag"></i> 宏病毒组</a></div></div><footer><div class="meta"><span class="item"><span class="icon"><i class="ic i-calendar-check"></i> </span><span class="text">Edited on</span> <time title="Modified: 2022-05-31 09:41:33" itemprop="dateModified" datetime="2022-05-31T09:41:33+08:00">2022-05-31</time> </span><span id="post/1551.html" class="item leancloud_visitors" data-flag-title="宏病毒组分析流程1-VirSorter2" title="Views"><span class="icon"><i class="ic i-eye"></i> </span><span class="text">Views</span> <span class="leancloud-visitors-count"></span> <span class="text">times</span></span></div><div class="reward"><button><i class="ic i-heartbeat"></i> Donate</button><p>Give me a cup of [coffee]~(￣▽￣)~*</p><div id="qr"><div><img data-src="/images/reward-wepays.jpg" alt="Hualin Liu WeChat Pay"><p>WeChat Pay</p></div><div><img data-src="/images/AliPays.jpg" alt="Hualin Liu Alipay"><p>Alipay</p></div></div></div><div id="copyright"><ul><li class="author"><strong>Post author: </strong>liaochenlanruo <i class="ic i-at"><em>@</em></i>了尘兰若的小坑</li><li class="link"><strong>Post link: </strong><a href="https://liaochenlanruo.gitee.io/post/1551.html" title="宏病毒组分析流程1-VirSorter2">https://liaochenlanruo.gitee.io/post/1551.html</a></li><li class="license"><strong>Copyright Notice: </strong>All articles in this blog are licensed under <span class="exturl" data-url="aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzQuMC9kZWVkLnpo"><i class="ic i-creative-commons"><em>(CC)</em></i>BY-NC-SA</span> unless stating additionally.</li></ul></div></footer></article></div><div class="post-nav"><div class="item left"><a href="/post/ed43.html" itemprop="url" rel="prev" data-background-image="https:&#x2F;&#x2F;fastly.jsdelivr.net&#x2F;gh&#x2F;liaochenlanruo&#x2F;cdn@master&#x2F;img&#x2F;custom&#x2F;bgs&#x2F;thumb_95.webp" title="Linux中使用tar将大文件压缩为多个小的压缩包"><span class="type">Previous Post</span> <span class="category"><i class="ic i-flag"></i> IT</span><h3>Linux中使用tar将大文件压缩为多个小的压缩包</h3></a></div><div class="item right"><a href="/post/8fb3.html" itemprop="url" rel="next" data-background-image="https:&#x2F;&#x2F;fastly.jsdelivr.net&#x2F;gh&#x2F;liaochenlanruo&#x2F;cdn@master&#x2F;img&#x2F;custom&#x2F;bgs&#x2F;thumb_98.webp" title="利用GTDB-TK对细菌和古菌基因组进行物种分类"><span class="type">Next Post</span> <span class="category"><i class="ic i-flag"></i> 生物信息</span><h3>利用GTDB-TK对细菌和古菌基因组进行物种分类</h3></a></div></div><div class="wrap" id="comments"></div></div><div id="sidebar"><div class="inner"><div class="panels"><div class="inner"><div class="contents panel pjax" data-title="Contents"><ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#%E5%AE%89%E8%A3%85%E8%BD%AF%E4%BB%B6"><span class="toc-number">1.</span> <span class="toc-text">安装软件</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#%E9%A2%84%E6%B5%8B"><span class="toc-number">2.</span> <span class="toc-text">预测</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#%E8%BF%87%E6%BB%A4"><span class="toc-number">3.</span> <span class="toc-text">过滤</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E4%BE%9D%E6%8D%AE%E7%97%85%E6%AF%92%E5%92%8C%E5%AE%BF%E4%B8%BB%E5%9F%BA%E5%9B%A0%E6%95%B0-%E5%88%86%E6%95%B0-hallmark%E5%9F%BA%E5%9B%A0%E6%95%B0%E4%BB%A5%E5%8F%8Acontig%E9%95%BF%E5%BA%A6%E8%BF%9B%E8%A1%8C%E7%AD%9B%E9%80%89"><span class="toc-number">3.1.</span> <span class="toc-text">依据病毒和宿主基因数、分数、hallmark 基因数以及 contig 长度进行筛选</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E4%BE%9D%E6%8D%AEdramv%E6%B3%A8%E9%87%8A%E7%AD%9B%E9%80%89"><span class="toc-number">3.2.</span> <span class="toc-text">依据 DRAMv 注释筛选</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E6%89%8B%E5%8A%A8%E6%A3%80%E6%9F%A5"><span class="toc-number">3.3.</span> <span class="toc-text">手动检查</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#%E8%84%9A%E6%9C%AC%E8%8E%B7%E5%8F%96"><span class="toc-number">4.</span> <span class="toc-text">脚本获取</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#%E5%8F%82%E8%80%83"><span class="toc-number">5.</span> <span class="toc-text">参考</span></a></li></ol></div><div class="related panel pjax" data-title="Related"><ul><li><a href="/post/19824.html" rel="bookmark" title="生物信息学1：VMware虚拟机及Bio-linux安装与配置">生物信息学1：VMware虚拟机及Bio-linux安装与配置</a></li><li><a href="/post/9.html" rel="bookmark" title="生物信息学2：VirtualBox虚拟机及Bio-Linux安装">生物信息学2：VirtualBox虚拟机及Bio-Linux安装</a></li><li><a href="/post/10877.html" rel="bookmark" title="生物信息学3：微生物基因组学常用软件安装">生物信息学3：微生物基因组学常用软件安装</a></li><li><a href="/post/30650.html" rel="bookmark" title="根据基因组预测表型 —— traitar的安装与使用">根据基因组预测表型 —— traitar的安装与使用</a></li><li><a href="/post/44606.html" rel="bookmark" title="kSNP3寻找SNPs并构建进化树">kSNP3寻找SNPs并构建进化树</a></li><li><a href="/post/43504.html" rel="bookmark" title="用wget批量下载含有链接的文件/目录">用wget批量下载含有链接的文件/目录</a></li><li><a href="/post/94f2.html" rel="bookmark" title="为PubMed添加功能">为PubMed添加功能</a></li><li><a href="/post/4e1.html" rel="bookmark" title="OrthoFinder2—同源蛋白家族聚类">OrthoFinder2—同源蛋白家族聚类</a></li><li><a href="/post/848f.html" rel="bookmark" title="PGCGAP中文说明">PGCGAP中文说明</a></li><li><a href="/post/d163.html" rel="bookmark" title="Bioconda贡献指南">Bioconda贡献指南</a></li><li><a href="/post/f6c9.html" rel="bookmark" title="Linux和基因组测序技术初识">Linux和基因组测序技术初识</a></li><li><a href="/post/5908.html" rel="bookmark" title="BtToxin_Digger--A high-throughput Bacillus thuringiensis toxin mining pipeline">BtToxin_Digger--A high-throughput Bacillus thuringiensis toxin mining pipeline</a></li><li><a href="/post/ab1b.html" rel="bookmark" title="宏基因组分析流程及代码">宏基因组分析流程及代码</a></li><li><a href="/post/4cf4.html" rel="bookmark" title="Use microeco分析扩增子数据">Use microeco分析扩增子数据</a></li><li><a href="/post/1755.html" rel="bookmark" title="扩增子分析--计算随机过程和决定性过程比例">扩增子分析--计算随机过程和决定性过程比例</a></li><li><a href="/post/e7e9.html" rel="bookmark" title="根据assession number批量从NCB下载数据">根据assession number批量从NCB下载数据</a></li><li><a href="/post/e922.html" rel="bookmark" title="Swissprot数据库的本地化与序列比对并与其他数据库快速mapping">Swissprot数据库的本地化与序列比对并与其他数据库快速mapping</a></li><li><a href="/post/412a.html" rel="bookmark" title="构建样本vs基因矩阵">构建样本vs基因矩阵</a></li><li><a href="/post/9052.html" rel="bookmark" title="CAZy碳水化合物活性酶预测">CAZy碳水化合物活性酶预测</a></li><li><a href="/post/5324.html" rel="bookmark" title="原核生物基因岛预测">原核生物基因岛预测</a></li><li><a href="/post/d9f9.html" rel="bookmark" title="按照Contig切割GenBank文件">按照Contig切割GenBank文件</a></li><li><a href="/post/3a23.html" rel="bookmark" title="从GenBank文件中提取Features">从GenBank文件中提取Features</a></li><li><a href="/post/fb68.html" rel="bookmark" title="使用EffectiveT3预测微生物中的III型分泌系统效应蛋白">使用EffectiveT3预测微生物中的III型分泌系统效应蛋白</a></li><li><a href="/post/c886.html" rel="bookmark" title="SignalP+TMHMM预测微生物分泌蛋白">SignalP+TMHMM预测微生物分泌蛋白</a></li><li><a href="/post/6a93.html" rel="bookmark" title="在FASTA文件中搜索完全匹配的短序列">在FASTA文件中搜索完全匹配的短序列</a></li><li><a href="/post/ea71.html" rel="bookmark" title="在Linux服务器中安装网页版Rstudio">在Linux服务器中安装网页版Rstudio</a></li><li><a href="/post/a713.html" rel="bookmark" title="R语言安装依赖包错误集锦">R语言安装依赖包错误集锦</a></li><li><a href="/post/d444.html" rel="bookmark" title="NCBI上传基因簇之tbl2asn的使用">NCBI上传基因簇之tbl2asn的使用</a></li><li><a href="/post/18ea.html" rel="bookmark" title="利用NCycDB数据库从宏基因组中预测氮循环基因">利用NCycDB数据库从宏基因组中预测氮循环基因</a></li><li><a href="/post/36cc.html" rel="bookmark" title="R语言绘制分组条形图">R语言绘制分组条形图</a></li><li class="active"><a href="/post/1551.html" rel="bookmark" title="宏病毒组分析流程1-VirSorter2">宏病毒组分析流程1-VirSorter2</a></li><li><a href="/post/8fb3.html" rel="bookmark" title="利用GTDB-TK对细菌和古菌基因组进行物种分类">利用GTDB-TK对细菌和古菌基因组进行物种分类</a></li><li><a href="/post/85d7.html" rel="bookmark" title="计算蛋白质等电点并绘制全局pI图">计算蛋白质等电点并绘制全局pI图</a></li><li><a href="/post/92eb.html" rel="bookmark" title="使用DeepARG预测抗生素抗性基因ARGs">使用DeepARG预测抗生素抗性基因ARGs</a></li><li><a href="/post/74ad.html" rel="bookmark" title="Nanopore基因组组装">Nanopore基因组组装</a></li><li><a href="/post/2581.html" rel="bookmark" title="使用eggNOG-mapper注释基因组">使用eggNOG-mapper注释基因组</a></li><li><a href="/post/d862.html" rel="bookmark" title="PGCGAP - the Prokaryotic Genomics and Comparative Genomics Analysis Pipeline v1.0.33">PGCGAP - the Prokaryotic Genomics and Comparative Genomics Analysis Pipeline v1.0.33</a></li><li><a href="/post/e6ae.html" rel="bookmark" title="利用PGCGAP根据ids提取序列信息">利用PGCGAP根据ids提取序列信息</a></li><li><a href="/post/213.html" rel="bookmark" title="多种方法批量下载NCBI基因组">多种方法批量下载NCBI基因组</a></li><li><a href="/post/33b.html" rel="bookmark" title="代谢组相关软件的安装及使用">代谢组相关软件的安装及使用</a></li><li><a href="/post/377e.html" rel="bookmark" title="使用xcms3处理和分析LC-MS数据">使用xcms3处理和分析LC-MS数据</a></li><li><a href="/post/df57.html" rel="bookmark" title="用metid构建代谢组数据库">用metid构建代谢组数据库</a></li><li><a href="/post/0.html" rel="bookmark" title="基于TidyMass的非靶向代谢组学分析">基于TidyMass的非靶向代谢组学分析</a></li><li><a href="/post/29bf.html" rel="bookmark" title="批量下载某研究方向重要文献">批量下载某研究方向重要文献</a></li><li><a href="/post/c617.html" rel="bookmark" title="16S扩增子测序及宏基因组测序">16S扩增子测序及宏基因组测序</a></li><li><a href="/post/1177.html" rel="bookmark" title="用MaAsLin2包做微生物组多变量线性模型关联分析">用MaAsLin2包做微生物组多变量线性模型关联分析</a></li><li><a href="/post/7449.html" rel="bookmark" title="NCBI上传基因簇之table2asn的使用">NCBI上传基因簇之table2asn的使用</a></li></ul></div><div class="overview panel" data-title="Overview"><div class="author" itemprop="author" itemscope itemtype="http://schema.org/Person"><img class="image" itemprop="image" alt="Hualin Liu" data-src="/images/head.jpg"><p class="name" itemprop="name">Hualin Liu</p><div class="description" itemprop="description">分享微生物生物信息学分析方法，欢迎加入QQ群交流945751012，不接受群内广告！</div></div><nav class="state"><div class="item posts"><a href="/archives/"><span class="count">130</span> <span class="name">posts</span></a></div><div class="item categories"><a href="/categories/"><span class="count">12</span> <span class="name">categories</span></a></div><div class="item tags"><a href="/tags/"><span class="count">54</span> <span class="name">tags</span></a></div></nav><div class="social"><span class="exturl item github" data-url="aHR0cDovL2dpdGh1Yi5jb20vbGlhb2NoZW5sYW5ydW8=" title="http:&#x2F;&#x2F;github.com&#x2F;liaochenlanruo"><i class="ic i-github"></i></span> <span class="exturl item zhihu" data-url="aHR0cHM6Ly93d3cuemhpaHUuY29tL3Blb3BsZS9zdWFuLWxhLW1pYW4tcGlhbi10YW5nLWNpdW0=" title="https:&#x2F;&#x2F;www.zhihu.com&#x2F;people&#x2F;suan-la-mian-pian-tang-cium"><i class="ic i-zhihu"></i></span> <span class="exturl item weibo" data-url="aHR0cHM6Ly93ZWliby5jb20vdS8yNzE1MjEwOTIz" title="https:&#x2F;&#x2F;weibo.com&#x2F;u&#x2F;2715210923"><i class="ic i-weibo"></i></span> <span class="exturl item about" data-url="aHR0cHM6Ly93d3cubGlhb2NoZW5sYW5ydW8uZnVuL2Fib3V0" title="https:&#x2F;&#x2F;www.liaochenlanruo.fun&#x2F;about"><i class="ic i-address-card"></i></span> <span class="exturl item email" data-url="bWFpbHRvOmxpYW9jaGVubGFucnVvQHdlYm1haWwuaHphdS5lZHUuY24=" title="mailto:liaochenlanruo@webmail.hzau.edu.cn"><i class="ic i-envelope"></i></span> <span class="exturl item douban" data-url="aHR0cHM6Ly93d3cuZG91YmFuLmNvbS9wZW9wbGUvbGlhb2NoZW5sYW5ydW8vP19pPTczNDYxMjVRalo1QjZWLw==" title="https:&#x2F;&#x2F;www.douban.com&#x2F;people&#x2F;liaochenlanruo&#x2F;?_i&#x3D;7346125QjZ5B6V&#x2F;"><i class="ic i-douban"></i></span> <span class="exturl item google" data-url="aHR0cHM6Ly9zY2hvbGFyLmdvb2dsZS5jby5qcC9jaXRhdGlvbnM/dXNlcj1YYW9STk1RQUFBQUomaGw9amE=" title="https:&#x2F;&#x2F;scholar.google.co.jp&#x2F;citations?user&#x3D;XaoRNMQAAAAJ&amp;hl&#x3D;ja"><i class="ic i-google"></i></span></div><ul class="menu"><li class="item"><a href="/" rel="section"><i class="ic i-home"></i>Home</a></li><li class="item dropdown"><a href="javascript:void(0);"><i class="ic i-user"></i>About</a><ul class="submenu"><li class="item"><a href="/about/" rel="section"><i class="ic i-user"></i>About me</a></li><li class="item"><a href="/comment/" rel="section"><i class="ic i-envelope"></i>Comment</a></li></ul></li><li class="item dropdown"><a href="javascript:void(0);"><i class="ic i-feather"></i>Posts</a><ul class="submenu"><li class="item"><a href="/archives/" rel="section"><i class="ic i-list-alt"></i>Archives</a></li><li class="item"><a href="/categories/" rel="section"><i class="ic i-th"></i>Categories</a></li><li class="item"><a href="/tags/" rel="section"><i class="ic i-tags"></i>Tags</a></li></ul></li><li class="item dropdown"><a href="javascript:void(0);"><i class="ic i-list-ol"></i>List</a><ul class="submenu"><li class="item"><a href="/photos/" rel="section"><i class="ic i-person"></i>Photos</a></li><li class="item"><a href="/skip/gallery/" rel="section"><i class="ic i-cloud"></i>Gallery</a></li><li class="item"><a href="/skip/box/" rel="section"><i class="ic i-magic"></i>Box</a></li><li class="item"><span class="exturl" data-url="aHR0cHM6Ly9saWFvY2hlbmxhbnJ1by5mdW4vcmVmZXJlbmNlLw=="><i class="ic i-th"></i>cheatsheets</span></li></ul></li><li class="item"><a href="/donate/" rel="section"><i class="ic i-coffee"></i>Donate</a></li><li class="item"><a href="/friends/" rel="section"><i class="ic i-heart"></i>Friends</a></li><li class="item"><span class="exturl" data-url="aHR0cHM6Ly9saWFvY2hlbmxhbnJ1by5naXRodWIuaW8="><i class="ic i-external-link-alt"></i>中文版</span></li><li class="item"><span class="exturl" data-url="aHR0cHM6Ly90cmF2ZWxsaW5ncy5saW5r"><i class="ic i-forward"></i>Travelling</span></li></ul></div></div></div><ul id="quick"><li class="prev pjax"><a href="/post/ed43.html" rel="prev" title="Previous Post"><i class="ic i-chevron-left"></i></a></li><li class="up"><i class="ic i-arrow-up"></i></li><li class="down"><i class="ic i-arrow-down"></i></li><li class="next pjax"><a href="/post/8fb3.html" rel="next" title="Next Post"><i class="ic i-chevron-right"></i></a></li><li class="percent"></li></ul></div></div><div class="dimmer"></div></div></main><footer id="footer"><div class="inner"><div class="widgets"></div><div class="status"><div class="copyright">&copy; 2018 – <span itemprop="copyrightYear">2024</span> <span class="with-love"><i class="ic i-sakura rotate"></i> </span><span class="author" itemprop="copyrightHolder">Hualin Liu @ ResearchGo</span></div><div class="count"><span class="post-meta-item-icon"><i class="ic i-chart-area"></i> </span><span title="Symbols count total">788k words</span> <span class="post-meta-divider">|</span> <span class="post-meta-item-icon"><i class="ic i-coffee"></i> </span><span title="Reading time total">11:57</span><script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><span class="post-meta-divider">|</span> <span class="post-meta-item-icon"><i class="ic i-info-circle"></i> </span><span style="padding-left:1px"><span id="busuanzi_container_site_pv">Total visits: <span id="busuanzi_value_site_pv" style="color:#f99"></span> times</span> <span class="post-meta-divider">|</span> <span class="post-meta-item-icon"><i class="ic i-user"></i> </span><span style="padding-left:1px"><span id="busuanzi_container_site_uv">Total visitors: <span id="busuanzi_value_site_uv" style="color:#f99"></span> people</span></span></span></div><div class="powered-by">Powered by <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlv">Hexo</span> & Theme.<span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2FtZWhpbWUvaGV4by10aGVtZS1zaG9rYQ==">Shoka</span></div></div></div></footer></div><script data-config type="text/javascript">var LOCAL={path:"post/1551.html",favicon:{show:"（●´3｀●）Goooood",hide:"(´Д｀)Booooom"},search:{placeholder:"Search for Posts",empty:"We didn't find any results for the search: ${query}",stats:"${hits} results found in ${time} ms"},valine:!0,fancybox:!0,copyright:'Copied to clipboard successfully! <br> All articles in this blog are licensed under <i class="ic i-creative-commons"></i>BY-NC-SA.',ignores:[function(e){return e.includes("#")},function(e){return new RegExp(LOCAL.path+"$").test(e)}]}</script><script src="https://cdn.polyfill.io/v2/polyfill.js"></script><script src="//cdn.jsdelivr.net/combine/npm/pace-js@1.0.2/pace.min.js,npm/pjax@0.2.8/pjax.min.js,npm/whatwg-fetch@3.4.0/dist/fetch.umd.min.js,npm/animejs@3.2.0/lib/anime.min.js,npm/algoliasearch@4/dist/algoliasearch-lite.umd.js,npm/instantsearch.js@4/dist/instantsearch.production.min.js,npm/lozad@1/dist/lozad.min.js,npm/quicklink@2/dist/quicklink.umd.js"></script><script src="/js/app.js?v=0.2.5"></script><script data-pjax>var _hmt=_hmt||[];!function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?d211830a796ceefb38a141fde14e4d5a";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()</script></body></html>